import matplotlib.pyplot as plt
import numpy as np
#电影类型
movie=['爱情片','动作片']
#数据集
T = [[3, 104, 0],
    [2, 100, 0],
    [1, 81, 0],
    [101, 10, 1],
    [99, 5, 1],
    [98, 2, 1]]
t=np.array(T)
#待测样本点
x=[18,90]
#画出样本点 和待测点
import matplotlib.pyplot as plt
plt.scatter(t[:,0],t[:,1],c=t[:,2])
plt.scatter(x[0],x[1])
plt.show()
#取最近的3个样本
k=3
#存放距离的列表
dis=[]
for i in T:
    #计算每一个样本点到待测点的距离
    d=np.sqrt((x[0]-i[0])**2+(x[1]-i[1])**2)
    # 将距离和类别放入列表
    dis.append([d,i[2]])
print(dis)
#对距离进行排序
dis.sort(key=lambda x: x[0])

#查看前k想结果
d={}
print(dis)
for i in dis[:k]:
    if d.get(i[1]):
        d[i[1]]+=1
    else:
        d[i[1]]=1

l=max(d,key=d.get)
print('预测结果为',movie[l])